Centralize SQL benchmark matrices in bench-orchestrator - #8801
Centralize SQL benchmark matrices in bench-orchestrator#8801connortsui20 wants to merge 1 commit into
Conversation
Polar Signals Profiling ResultsLatest Run
Previous Runs (4)
Powered by Polar Signals Cloud |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7ee63eed84
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Benchmarks: Vortex queries 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.065x ➖, 0↑ 0↓)
datafusion / parquet (1.049x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (1.052x ➖, 0↑ 0↓)
duckdb / parquet (1.014x ➖, 0↑ 0↓)
No file size changes detected. |
Codecov Report✅ All modified and coverable lines are covered by tests. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
d62ddf8 to
995a5b6
Compare
vx-bench matrix CLIa071922 to
1865849
Compare
Merging this PR will not alter performance
|
1865849 to
f6255c2
Compare
Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>
f6255c2 to
2d4d608
Compare
Benchmarks: PolarSignals Profiling 📖Vortex (geomean): 1.053x ➖ How to read Verdict and Engines
datafusion / vortex-file-compressed (1.053x ➖, 1↑ 3↓)
No file size changes detected. |
Benchmarks: TPC-H SF=1 on NVME 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.898x ✅, 12↑ 0↓)
datafusion / vortex-compact (0.913x ➖, 5↑ 0↓)
datafusion / parquet (0.914x ➖, 9↑ 0↓)
duckdb / vortex-file-compressed (0.908x ➖, 10↑ 0↓)
duckdb / vortex-compact (0.913x ➖, 8↑ 0↓)
duckdb / parquet (0.942x ➖, 5↑ 0↓)
duckdb / duckdb (0.931x ➖, 3↑ 0↓)
No file size changes detected. |
Benchmarks: FineWeb NVMe 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.027x ➖, 0↑ 0↓)
datafusion / vortex-compact (0.993x ➖, 0↑ 0↓)
datafusion / parquet (0.995x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (1.028x ➖, 0↑ 1↓)
duckdb / vortex-compact (0.993x ➖, 0↑ 1↓)
duckdb / parquet (0.999x ➖, 0↑ 0↓)
No file size changes detected. |
Benchmarks: TPC-DS SF=1 on NVME 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.920x ➖, 26↑ 0↓)
datafusion / vortex-compact (0.940x ➖, 9↑ 0↓)
datafusion / parquet (0.926x ➖, 25↑ 0↓)
duckdb / vortex-file-compressed (0.949x ➖, 8↑ 0↓)
duckdb / vortex-compact (0.953x ➖, 12↑ 0↓)
duckdb / parquet (0.966x ➖, 1↑ 1↓)
duckdb / duckdb (0.959x ➖, 1↑ 1↓)
No file size changes detected. |
Benchmarks: FineWeb S3 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.909x ➖, 2↑ 1↓)
datafusion / vortex-compact (0.997x ➖, 0↑ 0↓)
datafusion / parquet (1.054x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (1.041x ➖, 0↑ 0↓)
duckdb / vortex-compact (1.024x ➖, 0↑ 0↓)
duckdb / parquet (0.954x ➖, 0↑ 0↓)
|
Benchmarks: TPC-H SF=10 on NVME 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.989x ➖, 0↑ 0↓)
datafusion / vortex-compact (0.999x ➖, 0↑ 0↓)
datafusion / parquet (0.983x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (1.008x ➖, 0↑ 0↓)
duckdb / vortex-compact (1.006x ➖, 0↑ 0↓)
duckdb / parquet (1.002x ➖, 0↑ 0↓)
duckdb / duckdb (1.003x ➖, 0↑ 0↓)
No file size changes detected. |
Benchmarks: Statistical and Population Genetics 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
duckdb / vortex-file-compressed (1.006x ➖, 0↑ 0↓)
duckdb / vortex-compact (1.000x ➖, 0↑ 0↓)
duckdb / parquet (1.009x ➖, 0↑ 0↓)
No file size changes detected. |
Benchmarks: Clickbench Sorted on NVME 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.945x ➖, 2↑ 0↓)
datafusion / parquet (1.024x ➖, 0↑ 1↓)
duckdb / vortex-file-compressed (1.111x ❌, 0↑ 4↓)
duckdb / parquet (1.001x ➖, 0↑ 0↓)
duckdb / duckdb (0.998x ➖, 0↑ 0↓)
File Size Changes (201 files changed, +0.0% overall, 109↑ 92↓)
Totals:
|
Benchmarks: Clickbench on NVME 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.995x ➖, 1↑ 2↓)
datafusion / parquet (1.005x ➖, 0↑ 1↓)
duckdb / vortex-file-compressed (0.995x ➖, 2↑ 1↓)
duckdb / parquet (1.000x ➖, 1↑ 0↓)
duckdb / duckdb (1.006x ➖, 1↑ 1↓)
File Size Changes (1 files changed, -0.0% overall, 0↑ 1↓)
Totals:
|
Benchmarks: TPC-H SF=1 on S3 📖Verdict: No clear signal (environment too noisy confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.991x ➖, 0↑ 0↓)
datafusion / vortex-compact (0.942x ➖, 0↑ 0↓)
datafusion / parquet (1.122x ➖, 0↑ 1↓)
duckdb / vortex-file-compressed (0.960x ➖, 0↑ 0↓)
duckdb / vortex-compact (1.007x ➖, 0↑ 0↓)
duckdb / parquet (0.981x ➖, 0↑ 0↓)
|
Benchmarks: Appian on NVME 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.072x ➖, 0↑ 2↓)
datafusion / parquet (1.070x ➖, 0↑ 1↓)
duckdb / vortex-file-compressed (1.045x ➖, 0↑ 0↓)
duckdb / parquet (1.036x ➖, 0↑ 0↓)
duckdb / duckdb (1.038x ➖, 0↑ 0↓)
File Size Changes (1 files changed, -0.0% overall, 0↑ 1↓)
Totals:
|
Benchmarks: Random Access 📖Vortex (geomean): 1.243x ❌ How to read Verdict and Engines
unknown / unknown (1.217x ❌, 0↑ 43↓)
|
Benchmarks: TPC-H SF=10 on S3 📖Verdict: No clear signal (environment too noisy confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.008x ➖, 0↑ 1↓)
datafusion / vortex-compact (0.887x ➖, 3↑ 0↓)
datafusion / parquet (0.994x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (1.030x ➖, 0↑ 0↓)
duckdb / vortex-compact (1.020x ➖, 0↑ 0↓)
duckdb / parquet (0.993x ➖, 0↑ 0↓)
|
Benchmarks: Compression 📖Vortex (geomean): 0.995x ➖ How to read Verdict and Engines
unknown / unknown (0.989x ➖, 0↑ 0↓)
|
|
im going to make a new PR thats better |
## Rationale for this change Closes: #4935 Revived from: #8801 SQL benchmark coverage was spread across large workflow JSON matrices and difficult to audit. ## What changes are included in this PR? Moves benchmark coverage into one typed Python catalog. `vx-bench matrix <preset>` validates and renders it for GitHub Actions; the surrounding modules only model, validate, and render the catalog. The `pr`, `pr-full`, `develop`, and `nightly` outputs remain unchanged. Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>
Closes: #4935
Motivation
SQL benchmark matrices were spread across several workflows as large JSON blocks, making target coverage difficult to compare or update consistently. This PR moves that configuration into one Python source of truth while preserving the current CI coverage.
How it works
bench_orchestrator/benchmarks.pydeclares each benchmark, including its supported engine/format targets, scale, storage, and iterations.bench_orchestrator/matrix.pyrenders one named preset:pr: quicker PR coveragepr-full: full PR coveragedevelop: regular develop benchmarksnightly: SF=100 TPC-Hvortex: Vortex query benchmarksvx-bench matrix <preset>emits the compact JSONincludearray expected by GitHub Actions.sql-benchmarks.ymlresolves that preset in a small read-only job, then usesfromJSON(...)to fan out the benchmark jobs. Each matrix entry already contains its finaltargetsanddata_formats, so the workflow no longer contains separate PR/develop target-selection logic.Remote benchmark declarations emit only a relative dataset key. The workflow constructs the complete S3 path using the current GitHub ref and run ID, where those values are available.
Validation